chore(ci): SHA-pin third-party actions, add uv Dependabot coverage - #205
Merged
Conversation
…ndabot coverage This repo had no Dependabot coverage for the packages it actually depends on — dependabot.yml declared only the github-actions ecosystem, so nothing was ever proposed for pyproject.toml or uv.lock. Adds the uv ecosystem, mirroring the robosystems backend, and pins the four third-party actions by commit SHA. Pinning follows the frontend apps' convention: third-party actions by SHA, GitHub-owned actions (actions/checkout, actions/setup-python) left on tags. The action-gh-release and claude-code-action SHAs are the ones already running across the three frontends. Two pins worth calling out: - pypa/gh-action-pypi-publish moves from the `release/v1` branch to dc37677b # v1.14.2. That commit *is* the current release/v1 head, so this changes nothing about what runs today — it just stops the reference being a moving branch, and gives Dependabot a version it can track. - astral-sh/setup-uv is pinned where it already sat, v9.0.0, and majors are now ignored. The backend holds at v8.3.2 for cache reasons; this repo is not downgraded to match, because neither v9's nor v10's breaking change actually bites here — no workflow triggers on release, pull_request_target or workflow_run, which is the only surface v10's cache guard touches. What the fleet shares is the rule, not the version. The uv block intentionally has no groups: unlike the backend, there is no version-coupled family here (httpx, pydantic, attrs and typing-extensions are independent), and majors on those land on consumers of the published package, so they are left ungrouped for individual triage.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings this repo up to the CI dependency posture the three frontend apps landed today. It was the fleet's blind spot:
dependabot.ymldeclared only thegithub-actionsecosystem, so nothing was ever proposed forpyproject.tomloruv.lock— the runtime dependencies of a published package had no update coverage at all.Changes
Dependabot gains the
uvecosystem, mirroring the robosystems backend.Four third-party actions pinned by commit SHA. GitHub-owned actions (
actions/checkout,actions/setup-python) stay on tags, matching the frontends' convention. Theaction-gh-releaseandclaude-code-actionSHAs are the ones already running across the three frontends.Two pins worth a closer look:
pypa/gh-action-pypi-publishmoves from therelease/v1branch todc37677b # v1.14.2. That commit is the currentrelease/v1head, so nothing about what runs today changes — it just stops the reference being a moving branch, and gives Dependabot a version to track. This is the action that publishes to PyPI, so an unpinned moving reference was the most consequential one in the fleet.astral-sh/setup-uvis pinned where it already sat,v9.0.0, and majors are now ignored — closing the loop on PR chore(deps): bump astral-sh/setup-uv from 9.0.0 to 10.0.1 #203 and the two earlier declines.Why v9 rather than matching the backend's v8.3.2
The backend holds at v8.3.2 because v9 flipped
prune-cachetofalseand would grow its uv cache. This repo is not downgraded to match, because neither v9's nor v10's breaking change actually bites here: no workflow triggers onrelease,pull_request_targetorworkflow_run, which is the only surface v10's cache guard touches. Downgrading would be churn with a real behavior change and no security gain.So what the fleet shares is the rule — don't take setup-uv majors without a deliberate decision — not the version number. The comment in
dependabot.ymlsays exactly that, rather than copying the backend's cache rationale, which isn't true of this repo.Note on the uv block
Intentionally no groups. Unlike the backend there's no version-coupled family here —
httpx,pydantic,attrsandtyping-extensionsmove independently — and majors on those land on consumers of the published package, so they're left ungrouped for individual triage.Verification
All workflow YAML parses, and the
dependabot.ymlschema is validated by GitHub's own check on this PR. Changes are workflow/config YAML only; no Python source touched.